﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using QLTV_BLL;
using QLTV_Public;

namespace GUI
{
    public partial class uc_DangKyCaBiet : DevExpress.XtraEditors.XtraUserControl
    {
        #region khai bao bien
        DangKyCaBiet_BLL dk_bll = new DangKyCaBiet_BLL();
        TextMessageBox box = new TextMessageBox();
        bool KTCapNhatTT = false;

        string soCaBiet = "";
        #endregion 

        #region LoadForm

        public uc_DangKyCaBiet()
        {
            InitializeComponent();
        }


        private void uc_DangKyCaBiet_Load(object sender, EventArgs e)
        {
            LoadData();
        }
        #endregion

        #region Các chức năng

        private void btnThem_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {

        }

        private void btnCapNhat_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            grv_Data.CloseEditor();
            grv_Data.UpdateCurrentRow();
            CheckCapNhatTinhTrang();
            if (KTCapNhatTT == true)//cập nhập nhìu tài liệu
            {
                frmCapNhatTinhTrangTL frm = new frmCapNhatTinhTrangTL();
                frm.soCaBiet = LayData_CapNhap();
                if (frm.ShowDialog() == DialogResult.OK)
                    LoadData();
            }
            else//cập nhập 1 tài liệu
            {
                string TrangThai = grv_Data.GetRowCellValue(grv_Data.FocusedRowHandle, colTrangThaiMuon).ToString();
                if (TrangThai == "Trong Kho")
                {
                    frmCapNhatTinhTrangTL frm = new frmCapNhatTinhTrangTL();
                    frm.soCaBiet = grv_Data.GetRowCellValue(grv_Data.FocusedRowHandle, colSoCaBiet).ToString();
                    if (frm.ShowDialog() == DialogResult.OK)
                        LoadData();
                }
                else
                    XtraMessageBox.Show("Tài Liệu đang được mượn không thể cập nhật Trạng thái!", box.Caption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        #endregion

        #region ham viet them
        private void LoadData()
        {
            grd_Data.DataSource = dk_bll.LayDuLieu();
            grv_Data.BestFitColumns();
        }
        private void CheckCapNhatTinhTrang()
        {
            for (int i = 0; i < grv_Data.RowCount; i++)
            {
                if (Convert.ToBoolean(grv_Data.GetRowCellValue(i, colCheck)) == true)
                {
                    KTCapNhatTT = true;
                    break;
                }
            }
        }

        private string LayData_CapNhap()
        {
            for (int i = 0; i < grv_Data.RowCount; i++)
            
            {
                if (Convert.ToBoolean(grv_Data.GetRowCellValue(i, colCheck)) == true)
                    soCaBiet += grv_Data.GetRowCellValue(i, colSoCaBiet).ToString() + ",";
            }
            return soCaBiet;
        }
        #endregion

        private void grv_Data_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            grv_Data.CloseEditor();
            grv_Data.UpdateCurrentRow();
            string TrangThai = grv_Data.GetRowCellValue(grv_Data.FocusedRowHandle, colTrangThaiMuon).ToString();
            bool check =Convert.ToBoolean( grv_Data.GetRowCellValue(grv_Data.FocusedRowHandle, colCheck));
            if (TrangThai == "Đang Được Mượn")
            {
                XtraMessageBox.Show("Tài Liệu đang được mượn không thể Chọn!", box.Caption, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                grv_Data.FocusedColumn = colCheck;
                grv_Data.SetRowCellValue(grv_Data.FocusedRowHandle-1, colCheck, false);
            }
            else
                grv_Data.SetRowCellValue(grv_Data.FocusedRowHandle , colCheck, true);
        }

        private void btnCheckAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            for (int i = 0; i < grv_Data.RowCount; i++)
                if(grv_Data.GetRowCellValue(i,colTrangThaiMuon).ToString().Equals("Trong Kho"))
                {
                grv_Data.SetRowCellValue(i, colCheck, true);
                }
        }

        private void btnUnCheck_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            for (int i = 0; i < grv_Data.RowCount; i++)
                grv_Data.SetRowCellValue(i, colCheck, false);
        }
    }
}
